home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Demos / A.D. Software / OOFILE / Buildable, limited OOFILE / source / GUI / Mac / PPlant / Extras / LControlEnablingEditField.cp next >
Encoding:
Text File  |  1995-09-19  |  2.7 KB  |  112 lines  |  [TEXT/CWIE]

  1. // LControlEnablingEditField
  2. // enables and disables the attached LControl when the field is empty
  3. // ©1995 A.D. Software, all rights reserved
  4. // freely licensed for any use
  5. // contact dent@highway1.com.au  or http://www.highway1.com.au/adsoftware/
  6.  
  7. #include "LControlEnablingEditField.h"
  8.  
  9. #include <LControl.h>
  10.  
  11. LControlEnablingEditField*    LControlEnablingEditField::CreateControlEnablingEditFieldStream(LStream *inStream)
  12. {
  13.     return (new LControlEnablingEditField(inStream));
  14. }
  15.  
  16.  
  17. LControlEnablingEditField::LControlEnablingEditField() : 
  18.     mEnablingTarget(NULL), mEnableWhenEmpty(false)
  19. {}
  20.  
  21.  
  22. LControlEnablingEditField::LControlEnablingEditField(
  23.                                 const LControlEnablingEditField    &inOriginal) :
  24.     LEditField(inOriginal),
  25.     mEnablingTarget(inOriginal.mEnablingTarget), mEnableWhenEmpty(inOriginal.mEnableWhenEmpty)
  26. {}
  27.                                 
  28.                                 
  29. LControlEnablingEditField::LControlEnablingEditField(
  30.                                 const SPaneInfo        &inPaneInfo,
  31.                                 Str255                inString,
  32.                                 ResIDT                inTextTraitsID,
  33.                                 Int16                inMaxChars,
  34.                                 Boolean                inHasBox,
  35.                                 Boolean                inHasWordWrap,
  36.                                 KeyFilterFunc        inKeyFilter,
  37.                                 LCommander            *inSuper) :
  38.     LEditField(inPaneInfo, inString, inTextTraitsID, inMaxChars, inHasBox, inHasWordWrap, inKeyFilter, inSuper),
  39.     mEnablingTarget(NULL), mEnableWhenEmpty(false)
  40. {}
  41.                                 
  42.                                 
  43. LControlEnablingEditField::LControlEnablingEditField(
  44.                                 const SPaneInfo        &inPaneInfo,
  45.                                 Str255                inString,
  46.                                 ResIDT                inTextTraitsID,
  47.                                 Int16                inMaxChars,
  48.                                 Uint8                inAttributes,
  49.                                 KeyFilterFunc        inKeyFilter,
  50.                                 LCommander            *inSuper) :
  51.     LEditField(inPaneInfo, inString, inTextTraitsID, inMaxChars, inAttributes, inKeyFilter, inSuper),
  52.     mEnablingTarget(NULL), mEnableWhenEmpty(false)
  53. {}
  54.                                 
  55.                                 
  56. LControlEnablingEditField::LControlEnablingEditField(
  57.                                 LStream                *inStream) :
  58.     LEditField(inStream), 
  59.     mEnablingTarget(NULL), mEnableWhenEmpty(false)
  60. {}
  61.                                 
  62.                                 
  63.  
  64. void
  65. LControlEnablingEditField::UserChangedText()
  66. {
  67.     if (mEnablingTarget) {
  68.         Boolean isEmpty = ((**mTextEditH).teLength == 0);
  69.         if (isEmpty)
  70.             if (mEnableWhenEmpty)
  71.                 mEnablingTarget->Enable();
  72.             else
  73.                 mEnablingTarget->Disable();
  74.         else
  75.             if (mEnableWhenEmpty)
  76.                 mEnablingTarget->Disable();
  77.             else
  78.                 mEnablingTarget->Enable();
  79.     }
  80. }
  81.  
  82.  
  83. LControl*    LControlEnablingEditField::enablesControl()
  84. {
  85.     return mEnablingTarget;
  86. }
  87.  
  88.  
  89. void        LControlEnablingEditField::enablesControl(LControl* inCtl)
  90. {
  91.     mEnablingTarget = inCtl;
  92. }
  93.  
  94.  
  95. Boolean        LControlEnablingEditField::enablesWhenEmpty()
  96. {
  97.     return mEnableWhenEmpty;
  98. }
  99.  
  100.  
  101. void        LControlEnablingEditField::enableWhenEmpty()
  102. {
  103.     mEnableWhenEmpty = true;
  104. }
  105.  
  106.  
  107. void        LControlEnablingEditField::disableWhenEmpty()
  108. {
  109.     mEnableWhenEmpty = false;
  110. }
  111.  
  112.